package com.cssw.fyzb.core.dao.user;

import com.cssw.fyzb.core.model.dodb.UserExt;

import java.math.BigDecimal;

public interface UserExtDao {

    void save(Long userId);

    UserExt get(Long userId);

    void setValid(Long userId);

    void incActiveNum(Long userId, Integer activeNum);

    void decActiveNum(Long userId, Integer activeNum);

    void incFansNum(Long userId, Integer fansNum);

    void decFansNum(Long userId, Integer fansNum);

    void incFriendsNum(Long userId, Integer friendsNum);

    void decFriendsNum(Long userId, Integer friendsNum);

    void incProductionsNum(Long userId, Integer productionsNum);

    void decProductionsNum(Long userId, Integer productionsNum);

    void incLikesNum(Long userId, Integer likesNum);

    void decLikesNum(Long userId, Integer likesNum);

    void incAddActiveNum(Long userId, Integer addActiveNum);

    void decAddActiveNum(Long userId, Integer addActiveNum);

    void incTotalSendPack(Long userId, Integer totalSendPack);

    void incSumSendPack(Long userId, BigDecimal sumSendPack);

    void incTotalRecvPack(Long userId, Integer totalRecvPack);

    void incSumRecvPack(Long userId, BigDecimal sumRecvPack);

    /**
     * 更新实时统计字段
     *
     * @param userId
     * @param activeNum 活跃度
     * @param fansNum 粉丝
     * @param friendsNum 好友
     * @param productionsNum 作品
     * @param likesNum 喜欢作品数
     * @param addActiveNum 加成活跃度
     */
    void updateStatis(
            Long userId, Integer activeNum, Integer fansNum, Integer friendsNum,
            Integer productionsNum, Integer likesNum, Integer addActiveNum
    );

    /**
     * 更新果子增值价格
     * @param userId
     * @param gzAddPrice
     */
    void addGzAddPrice(Long userId, BigDecimal gzAddPrice);
}
